
/*
    有一个不可变数组：[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
    定义一个函数，输入起始和终点值，计算区间的值
    要求：1. 注意会重复调用该函数
          2.性能高
*/

const nums = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10];
const calc = (function calc() {
    const cache = {};
    cache[-1] = 0;
    cache[0] = nums[0];
    for (let i = 1; i < nums.length; i++) {
        cache[i] = cache[i - 1] + nums[i];
    }


    return function (start, end) {
        console.log(cache);
        return cache[end] - cache[start - 1];
    }
})()

console.log(calc(1, 9))
